作者:LiangChao | 来源:互联网 | 2024-11-23 13:14
前言:本文由编程爱好者小欣撰写,旨在分享如何利用Python创建一款功能丰富的网页版图像编辑器,希望能够为读者提供有价值的参考。
在新一年的开始,本篇文章作为虎年首篇技术干货,向大家展示如何使用Python语言制作一个网页版的‘图像编辑器’。这款软件支持用户上传图片,并对图片进行黑白处理、铅笔素描化、模糊化等多种操作。以下是具体的实现过程:
首先,需要导入项目所需的库文件,包括streamlit用于搭建网页界面,numpy和cv2用于图像处理,PIL则用于图像的加载与保存。相关代码如下:
import streamlit as st
import numpy as np
import cv2
from PIL import Image, ImageEnhance
接下来,我们将构建网页的基本结构,包括标题和左侧的工具栏。左侧工具栏不仅包含了应用的简介,还提供了多个选项供用户选择不同的图像处理效果。具体实现代码如下:
st.sidebar.markdown('我的第一个照片转换应用
', unsafe_allow_html=True)
with st.sidebar.expander('关于此应用'):
st.write('''
使用这个简单的应用可以将您喜欢的照片转换成铅笔素描、灰度图像或模糊效果的图像。
本应用由Junxin开发,作为一个学习Streamlit和计算机视觉的副项目。希望你喜欢!
''')
此外,工具栏中还包括了五个单选按钮,让用户可以选择不同的图像处理方式。代码如下所示:
filter = st.sidebar.radio('将您的照片转换为:', ['原图', '灰度图像', '黑白图像', '铅笔素描', '模糊效果'])
为了收集用户反馈,页面底部还设计了一个简短的调查表单,邀请用户评价并提出建议。相关代码如下:
st.sidebar.title(' ')
st.sidebar.markdown(' ')
st.sidebar.subheader('请帮助我们改进!')
with st.sidebar.form(key='columns_in_form', clear_on_submit=True):
rating = st.slider('请给应用评分', min_value=1, max_value=5, value=3, help='拖动滑块给应用打分,1-5分为最低至最高分')
text = st.text_input('请在此处留下您的反馈')
submitted = st.form_submit_button('提交')
if submitted:
# 处理提交的数据
...
页面主体部分,我们设计了标题和文件上传功能,方便用户上传待处理的图片。代码示例如下:
with col1:
st.markdown(''' ''', unsafe_allow_html=True)
st.markdown('在这里上传你的照片...
', unsafe_allow_html=True)
为了支持多种图片格式,我们使用了file_uploader方法,允许用户上传.jpg、.png或.jpeg格式的图片。相关代码如下:
uploaded_file = st.file_uploader('', type=['jpg', 'png', 'jpeg'])
一旦图片被上传,根据用户选择的处理方式,程序将对图片进行相应的处理。例如,如果选择了‘灰度图像’,则会执行以下代码:
if filter == '灰度图像':
converted_img = np.array(image.convert('RGB'))
gray_scale = cv2.cvtColor(converted_img, cv2.COLOR_RGB2GRAY)
# 进一步处理...
else:
st.image(image, width=300)
以上就是使用Python构建网页版图像编辑器的全部内容。希望本篇文章能给你带来灵感和技术上的帮助。